জাভাস্ক্রিপ্টে typeof
একটি অপারেটর যা একটি ভেরিয়েবলের ডেটা টাইপ বা প্রকার নির্ধারণ করতে ব্যবহৃত হয়। এটি সাধারণত ডেভেলপারদের কোডে ডেটার ধরন চেক করতে সহায়তা করে, যেমন স্ট্রিং, নাম্বার, অবজেক্ট, ফাংশন ইত্যাদি। typeof
অপারেটরটি একটি এক্সপ্রেশন হিসেবে কাজ করে এবং এটি যে কোন মানের ডেটা টাইপ ফিরিয়ে দেয়।
typeof
ব্যবহারযখন আপনি typeof
অপারেটর ব্যবহার করেন, তখন এটি সংশ্লিষ্ট মানের টাইপ রিটার্ন করবে। নিচে কিছু উদাহরণ দেওয়া হলো:
let number = 10;
console.log(typeof number); // আউটপুট: "number"
let name = "John";
console.log(typeof name); // আউটপুট: "string"
let isTrue = true;
console.log(typeof isTrue); // আউটপুট: "boolean"
let user = { name: "John", age: 30 };
console.log(typeof user); // আউটপুট: "object"
let func = function() {};
console.log(typeof func); // আউটপুট: "function"
এখানে, typeof
বিভিন্ন ডেটা টাইপের মান চেক করে তাদের টাইপ ফিরিয়ে দিয়েছে।
typeof
এর বৈশিষ্ট্যপ্রিমিটিভ ডেটা টাইপ গুলো হলো string
, number
, boolean
, undefined
, symbol
, এবং bigint
। typeof
এর মাধ্যমে এগুলোর টাইপ চেক করা সম্ভব:
let str = "Hello";
console.log(typeof str); // আউটপুট: "string"
let num = 123;
console.log(typeof num); // আউটপুট: "number"
let bool = false;
console.log(typeof bool); // আউটপুট: "boolean"
typeof
ব্যবহার করলে অবজেক্ট টাইপের জন্য "object"
রিটার্ন হবে, যেহেতু অবজেক্টগুলি জাভাস্ক্রিপ্টের একটি মৌলিক ডেটা টাইপ:
let person = { name: "John", age: 30 };
console.log(typeof person); // আউটপুট: "object"
let arr = [1, 2, 3];
console.log(typeof arr); // আউটপুট: "object" (এটি একটি অ্যারে হলেও typeof এ "object" দেখাবে)
এখানে দেখা যাচ্ছে যে, typeof
আউটপুটে অ্যারে বা অবজেক্ট উভয়ের জন্য "object"
দেখায়। যদিও অ্যারে প্রকৃতপক্ষে একটি বিশেষ ধরনের অবজেক্ট, তবে typeof
এর মাধ্যমে আপনি অ্যারে চিহ্নিত করতে পারবেন না।
null
এর জন্য typeof
একটি বিশেষ বিষয় হলো, typeof
null
এর জন্য "object"
রিটার্ন করবে, যা অনেক ডেভেলপারকে বিভ্রান্ত করে:
let n = null;
console.log(typeof n); // আউটপুট: "object"
এটি একটি জাভাস্ক্রিপ্টের পুরনো বাগ, এবং এখনও typeof null
"object"
রিটার্ন করে।
জাভাস্ক্রিপ্টের ফাংশন টাইপ চেক করতে typeof
খুবই সহায়ক:
let myFunction = function() {};
console.log(typeof myFunction); // আউটপুট: "function"
ফাংশনের জন্য typeof
সবসময় "function"
রিটার্ন করে।
typeof
এর সীমাবদ্ধতাtypeof
অপারেটর অ্যারে এবং সাধারণ অবজেক্টের মধ্যে পার্থক্য করতে পারে না। উভয়ের জন্য এটি "object"
রিটার্ন করবে:
let arr = [1, 2, 3];
console.log(typeof arr); // আউটপুট: "object"
let obj = { name: "John" };
console.log(typeof obj); // আউটপুট: "object"
অতএব, যদি আপনি নিশ্চিত হতে চান যে একটি মান অ্যারে কিনা, তাহলে Array.isArray()
মেথড ব্যবহার করতে হবে:
let arr = [1, 2, 3];
console.log(Array.isArray(arr)); // আউটপুট: true
typeof
জাভাস্ক্রিপ্টে একটি গুরুত্বপূর্ণ অপারেটর যা একটি মানের ডেটা টাইপ চেক করতে ব্যবহৃত হয়। এটি বিভিন্ন প্রিমিটিভ ডেটা টাইপ যেমন স্ট্রিং, নাম্বার, বুলিয়ান ইত্যাদির জন্য যথাযথ ফলাফল প্রদান করে, কিন্তু অ্যারে এবং null
এর ক্ষেত্রে কিছু বিভ্রান্তি হতে পারে। অ্যারে চেক করতে Array.isArray()
ব্যবহার করা উচিত। typeof
ফাংশন এবং অবজেক্টের ক্ষেত্রেও সহায়ক, তবে null
এবং অ্যারে চেক করার জন্য কিছু বিশেষ কৌশল অবলম্বন করা উচিত।
common.read_more